package com.oa.service.user;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oa.pojo.Emp;
import com.oa.pojo.Task;
import com.oa.pojo.TaskDesc;
import com.oa.vo.PageResult;
import com.oa.vo.TaskFileUploadVO;
import com.oa.vo.TaskVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface TaskService {

    void addTask(Task task);

    void updateTask(Task task);

    void deleteTask(Task task);

    /**
     * 任务列表分页查询
     *
     * @param page       分页信息
     * @param pageResult 其他查询条件
     * @return 查询结果
     */
    Page<TaskVO> getTaskList(Page<TaskVO> page, PageResult pageResult);

    List<Task> findAll();

    Task getTaskInfo(Task task);

    /**
     * 获取只定部门下所有员工信息
     *
     * @param depId 部门id
     * @return 员工列表
     */
    List<Emp> getEmpListByDep(Integer depId);

    Page<TaskVO> getPerformList(Page<TaskVO> page, PageResult pageResult);


    Integer deleteTaskFile(String key);

    TaskFileUploadVO uploadTaskFile(MultipartFile file) throws IOException;

    /**
     * 获取任务文件
     *
     * @param taskId 任务id
     * @return 任务文件
     */
    List<TaskDesc> getTaskFile(Integer taskId);

    Task getCurrentTask(Integer id);
}
